import random
import datetime

from util import Util
from app import Menu
from util.DbUtils import DatabaseUtil
login_error_count=0
# 连接数据库
from util.Util import read_user_info

db = DatabaseUtil(user="root", password="123456", database="woniuatm", port=3306)
global login_user_id


def reg():
    username = input('请输入用户名【注册】:')
    password = input('请输入密码【注册】:')
    phone = input('请输入电话号码【注册】:')
    if check_user(username) >= 0:

        print('你注册的用户已经存在')
        if_exit = input('是否退出 Y/F')  # 判断是否退出
        if (if_exit.find('Y') == -1):
            reg()  # 如果不退出则继续注册
        else:
            exit()  # 结束整个流程
    else:
        print('恭喜你用户名可用')
        sql = "insert into user(user_name,password,mobileno,balance) values ('%s', '%s', '%s','%d')" % (
        username, password, phone, random.randrange(1000, 5000, 100))
        db.update(sql)
        print('恭喜您，注册成功')

        Menu.start_menu('2')


# 登录
def login():
    global login_error_count  # 因为要改变该变量的值  定义全局打印
    username = input('请输入用户名【登录】:')
    password = input('请输入密码【登录】:')
    index = check_user(username)
    print('login_user_id', index)
    if index >= 0:
        user_list = read_user_info(index)
        print('login ====user_list', user_list)
        if user_list[0]['password'] == password:
            # 封装实体类
            from model.UserBean import UserBean
            user = UserBean(username,password,user_list[0]['mobileno'],user_list[0]['balance'])
            print('恭喜你,{}登录成功'.format(user.username))
            global login_user_id  # 加gloabal 进行声明全局变量
            login_user_id = index
            Menu.main_menu('')
        else:
            login_error_count += 1
            if login_error_count == 3:
                exit('输入错误太多,退出')
            else:
                print('抱歉密码输入错误,您还有{}次机会'.format(3 - login_error_count))
                login()  # 重新输入

    else:
        login_error_count += 1
        if login_error_count == 3:
            exit('输入错误太多,退出')
        else:
            print('抱歉,用户名不存在,您还有{}次机会'.format(3 - login_error_count))
            login()


# 检查用户信息并返回下标

def check_user(username):
    user_list = Util.read_user()
    for i, items in enumerate(user_list):
        if user_list[i]['user_name'] == username:
            return user_list[i]['user_id']
            print('login_user_id', login_user_id)
    return -1



